6.2. Метрики и мониторинг
Монит оринг и диагностика Apache Ozone: Метрики и мониторинг
Apache Ozone предоставляет встроенные метрики для мониторинга состояния кластера, производительности, использования ресурсов и доступности данных. Эти метрики помогают администраторам отслеживать работу системы в реальном времени и оперативно выявлять проблемы. Для визуализации метрик Ozone можно интегрировать с системами мониторинга, такими как Prometheus и Grafana.
1. Основные категории метрик Ozone
Метрики в Apache Ozone делятся на несколько категорий в зависимости от компонента:
- Ozone Manager (OM): Метрики для отслеживания состояния томов (volumes), бакетов (buckets), ключей (keys), производительности операций с метаданными, латентности и ошибок.
- Storage Container Manager (SCM): Метрики для мониторинга контейнеров, состояния репликации, heartbeat-сообщений от DataNodes, распределения данных и использования ресурсов.
- DataNode: Метрики по вводу/выводу, состоянию дисков, объёму занятого и свободного дискового пространства.
- S3 Gateway (S3G): Метрики, связанные с запросами через S3 API, производительностью операций загрузки и чтения объектов.
- Recon: Метрики для анализа состояния кластера, консистентности данных, а также метрики использования CPU и памяти для Recon.
2. Сбор метрик с помощью Prometheus
Apache Ozone предоставляет поддержку Prometheus для сбора метрик. Prometheus использует HTTP-эндпоинт /metrics
, на котором Ozone публикует свои метрики.
Шаг 1: Настройка эндпоинтов для метрик
Для каждого компонента Ozone укажите эндпоинт для метрик в ozone-site.xml
.
<configuration>
<!-- Метрики Ozone Manager -->
<property>
<name>ozone.om.http-address</name>
<value>0.0.0.0:9878</value>
</property>
<property>
<name>ozone.om.metrics.http-address</name>
<value>0.0.0.0:9880</value>
</property>
<!-- Метрики SCM -->
<property>
<name>ozone.scm.http-address</name>
<value>0.0.0.0:9861</value>
</property>
<property>
<name>ozone.scm.metrics.http-address</name>
<value>0.0.0.0:9881</value>
</property>
<!-- Метрики DataNode -->
<property>
<name>ozone.datanode.http-address</name>
<value>0.0.0.0:9858</value>
</property>
<property>
<name>ozone.datanode.metrics.http-address</name>
<value>0.0.0.0:9882</value>
</property>
<!-- Метрики S3 Gateway -->
<property>
<name>ozone.s3g.http-address</name>
<value>0.0.0.0:9874</value>
</property>
<property>
<name>ozone.s3g.metrics.http-address</name>
<value>0.0.0.0:9883</value>
</property>
</configuration>
Шаг 2: Настройка Prometheus для сбора метрик
Добавьте настройки эндпоинтов Ozone в конфигурационный файл Prometheus prometheus.yml
:
scrape_configs:
- job_name: 'ozone_om'
metrics_path: '/metrics'
static_configs:
- targets: ['om1.example.com:9880']
- job_name: 'ozone_scm'
metrics_path: '/metrics'
static_configs:
- targets: ['scm1.example.com:9881']
- job_name: 'ozone_datanode'
metrics_path: '/metrics'
static_configs:
- targets: ['datanode1.example.com:9882', 'datanode2.example.com:9882']
- job_name: 'ozone_s3g'
metrics_path: '/metrics'
static_configs:
- targets: ['s3g.example.com:9883']
Шаг 3: Запуск Prometheus
Перезапустите Prometheus для применения новых настроек:
systemctl restart prometheus